package com.ihy.dao.mybatis;


import com.ihy.entity.QQUser;
import org.apache.ibatis.annotations.*;

/**
 * qq用户数据处理层
 * <p>
 * Mapper注解:
 * 声明当前接口为一个Mapper接口
 * 其中@Select, @Insert，@Delete,@Update分别代表了执行的真实SQL
 **/
@Mapper
public interface DaoQQUser {
    /**
     * 查询方法通过openid得到用户信息.
     * <p>
     * Results注解:
     * 当数据库字段名与实体类对应的属性名不一致时，使用这个注解映射来将其对应起来。
     * <p>
     * Result注解:
     * property是实体类的属性名，column是数据库表的字段名。
     */
    @Results({
            @Result(property = "uid", column = "uid"),
            @Result(property = "openid", column = "openid"),
            @Result(property = "name", column = "name"),
            @Result(property = "image", column = "image"),
            @Result(property = "username", column = "username"),
            @Result(property = "password", column = "password")
    })
    @Select("select * from qqUser where openid = #{openid}")
    QQUser getOpenid(String openid);

    //添加信息
    @Insert("insert into qqUser(uid,openid,name,image,username,password) values(#{uid}, #{openid}, #{name}, #{image}, #{username}, #{password})")
    int insertQQ(QQUser userEntity);

    //修改信息
    @Update("update qqUser set name = #{name}, image = #{image} where openid = #{openid}")
    int updateQQ(QQUser userEntity);
    //QQ授权过之后会给一个openid，通过openid进行查找，如果没有就是首次登陆直接添，如果有先修改信息
}